﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Negocio.Entidades;

namespace Negocio.AccesoDatos
{
    public class UsuarioDAO : AccesoADatos
    {
        public UsuarioDAO() { } 

        public static bool EstaAutenticado(string nombreUsuario, string password)
        {
            try
            {
                string cadena = "SELECT COUNT(*) FROM Usuario WHERE nombre = @nombre AND password = @password";
                SqlParameter pr_nombre = new SqlParameter("@nombre", nombreUsuario);
                SqlParameter pr_pass = new SqlParameter("@password", password);
                int cantUsuarios = int.Parse(consultarSQLScalar(cadena, pr_nombre, pr_pass));
                return (cantUsuarios > 0);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }

        public static List<Rol> ObtenerRol(string nombreUsuario)
        {
            SqlDataReader r=null;
            try
            {
                string sql = @"SELECT R.id_rol, R.descripcion
                                    FROM Usuario U
                                    JOIN Rol R ON U.id_rol = R.id_rol
                                    WHERE nombre = @nombre";

                //List<SqlParameter> parametros = new List<SqlParameter>();
                //parametros.Add(new SqlParameter("usuario", nombreUsuario));
                SqlParameter pr_nombre = new SqlParameter("@nombre", nombreUsuario);
                
                r = consultarSqlDReader(sql, pr_nombre);

                List<Rol> l = new List<Rol>();
                while (r.Read())
                {
                    var entidad = new Rol();
                    entidad.id_rol = int.Parse(r["id_rol"].ToString());
                    entidad.descripcion = r["descripcion"].ToString();
                    l.Add(entidad);
                }
                

                return l;

            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                r.Dispose();
            }
        }
               
    }
}
